#include <cstdio>
#include <fstream>
#include <iostream>
using namespace std;

class A
{
public:
    virtual void fun(int a){cout <<"int" <<endl;}
    virtual void fun(string a){cout <<"string" <<endl;}
    virtual void fun(char a) = 0;
};

class B:public A
{
public:
    //using A::fun;
    void fun(char a) {cout <<"char" <<endl;}
};

int main()
{
    B b;
    A & a = b;
    a.fun(1);
    a.fun('c');
    a.fun("s");
    return 0;
}
